package newcodercyclecontrol;

import java.util.Scanner;

public class Exercise58 {

    //    描述
//    给你一个整数n，输出n∗n的蛇形矩阵。
//    输入描述：
//    输入一行，包含一个整数n
//    输出描述：
//    输出n行，每行包含n个正整数，通过空格分隔。
//            1<=n<=1000
//    示例1
//    输入：
//            4
//    输出：
//            1 2 6 7
//            3 5 8 13
//            4 9 12 14
//            10 11 15 16
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        int[][] array = new int[n][n];
        int count = 1;
        for (int i = 0; i < 2 * n - 2; i++) {
            for (int j = 0; j <= i; j++) {
                int x = i - j;
                if (x < n && j < n) {
                    if (i % 2 == 0) {
                        array[x][j] = count;
                    } else {
                        array[j][x] = count;
                    }
                    count++;
                }
            }
        }
        array[n - 1][n - 1] = count;
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                System.out.print(array[i][j] + " ");
            }
            System.out.println();
        }
    }
}
